Users interact with a software application using user interface (“UI”) visual elements presented by the software application. Some UI elements have fields that can be used by the user to provide input using a keyboard. Some UI elements have associated commands for the software application that are executed when the user selects the UI element. Buttons and menus are examples of UI elements that have associated commands.
Many users of a software application require the ability to interact with and traverse among the UI elements presented by the software application efficiently using a keyboard. Software applications typically provide navigation keys and activation keys to allow users to interact with the UI elements using the keyboard. The user presses the navigation keys to shift input focus between or among the UI elements of the software application. Tab chain navigation is one example of using navigation keys to navigate the UI elements of a software application. In tab chain navigation, UI elements for the software application are in effect grouped into a list, which can be circular. The elements in any particular list are typically those available on one display screen. Pressing the TAB key changes the input focus from one UI element to the next UI element in the list. In some environments, pressing shift-TAB changes the input focus to a previous UI element in the list.
Tab chain navigation can be slow when navigating from a currently selected UI element to a desired UI element. The user must press the TAB key to navigate through all the intermediate UI elements between the UI element currently having input focus and the desired UI element in order to access the desired UI element.
Some applications make use of a visual component that is formed from multiple contiguous visual elements. For example, a map of the United States is formed, for the most part, from multiple contiguous states. If a user wants to navigate between states, the user can use a mouse to click on an individual state. However, using keyboard navigation such as tab chain navigation may force the user to traverse a pre-determined list of states before arriving at the desired state, even if the desired state is adjacent to the current state.